home *** CD-ROM | disk | FTP | other *** search
/ PD Collection CD 1 / PD Collection CD 1.iso / textual / tex / files / !tex / TeXsource / web2ctex / ctex / c / tex1 < prev    next >
Encoding:
Text File  |  1988-05-19  |  38.2 KB  |  2,012 lines

  1. #define EXTERN extern
  2. #include "texd.h"
  3.  
  4. zshowbox ( p ) 
  5. halfword p ; 
  6. {showbox_regmem 
  7.   depththreshold = eqtb [ 5292 ] .cint ; 
  8.   breadthmax = eqtb [ 5291 ] .cint ; 
  9.   if ( breadthmax <= 0 ) 
  10.   breadthmax = 5 ; 
  11.   if ( poolptr + depththreshold >= poolsize ) 
  12.   depththreshold = poolsize - poolptr - 1 ; 
  13.   shownodelist ( p ) ; 
  14.   println () ; 
  15. zdeletetokenref ( p ) 
  16. halfword p ; 
  17. {deletetokenref_regmem 
  18.   if ( mem [ p ] .hh .v.LH == 0 ) 
  19.   flushlist ( p ) ; 
  20.   else decr ( mem [ p ] .hh .v.LH ) ; 
  21. zdeleteglueref ( p ) 
  22. halfword p ; 
  23. {deleteglueref_regmem 
  24.   if ( mem [ p ] .hh .v.RH == 0 ) 
  25.   freenode ( p , 4 ) ; 
  26.   else decr ( mem [ p ] .hh .v.RH ) ; 
  27. zflushnodelist ( p ) 
  28. halfword p ; 
  29. {/* 30 */ flushnodelist_regmem 
  30.   halfword q  ; 
  31.   while ( p != 0 ) {
  32.       
  33.     q = mem [ p ] .hh .v.RH ; 
  34.     if ( ( p >= himemmin ) ) 
  35.     {
  36.       mem [ p ] .hh .v.RH = avail ; 
  37.       avail = p ; 
  38.     ;
  39. #ifdef STAT
  40.       decr ( dynused ) ; 
  41. #endif /* STAT */
  42.     } 
  43.     else {
  44.     
  45.       switch ( mem [ p ] .hh.b0 ) 
  46.       {case 0 : 
  47.       case 1 : 
  48.       case 13 : 
  49.     {
  50.       flushnodelist ( mem [ p + 5 ] .hh .v.RH ) ; 
  51.       freenode ( p , 7 ) ; 
  52.       goto lab30 ; 
  53.     } 
  54.     break ; 
  55.       case 2 : 
  56.     {
  57.       freenode ( p , 4 ) ; 
  58.       goto lab30 ; 
  59.     } 
  60.     break ; 
  61.       case 3 : 
  62.     {
  63.       flushnodelist ( mem [ p + 4 ] .hh .v.LH ) ; 
  64.       deleteglueref ( mem [ p + 4 ] .hh .v.RH ) ; 
  65.       freenode ( p , 5 ) ; 
  66.       goto lab30 ; 
  67.     } 
  68.     break ; 
  69.       case 8 : 
  70.     {
  71.       switch ( mem [ p ] .hh.b1 ) 
  72.       {case 0 : 
  73.         freenode ( p , 3 ) ; 
  74.         break ; 
  75.       case 1 : 
  76.       case 3 : 
  77.         {
  78.           deletetokenref ( mem [ p + 1 ] .hh .v.RH ) ; 
  79.           freenode ( p , 2 ) ; 
  80.           goto lab30 ; 
  81.         } 
  82.         break ; 
  83.       case 2 : 
  84.         freenode ( p , 2 ) ; 
  85.         break ; 
  86.         default: 
  87.         confusion ( 1137 ) ; 
  88.         break ; 
  89.       } 
  90.       goto lab30 ; 
  91.     } 
  92.     break ; 
  93.       case 10 : 
  94.     {
  95.       {
  96.         if ( mem [ mem [ p + 1 ] .hh .v.LH ] .hh .v.RH == 0 ) 
  97.         freenode ( mem [ p + 1 ] .hh .v.LH , 4 ) ; 
  98.         else decr ( mem [ mem [ p + 1 ] .hh .v.LH ] .hh .v.RH ) ; 
  99.       } 
  100.       if ( mem [ p + 1 ] .hh .v.RH != 0 ) 
  101.       flushnodelist ( mem [ p + 1 ] .hh .v.RH ) ; 
  102.     } 
  103.     break ; 
  104.       case 11 : 
  105.       case 9 : 
  106.       case 12 : 
  107.     ; 
  108.     break ; 
  109.       case 6 : 
  110.     flushnodelist ( mem [ p + 1 ] .hh .v.RH ) ; 
  111.     break ; 
  112.       case 4 : 
  113.     deletetokenref ( mem [ p + 1 ] .cint ) ; 
  114.     break ; 
  115.       case 7 : 
  116.     {
  117.       flushnodelist ( mem [ p + 1 ] .hh .v.LH ) ; 
  118.       flushnodelist ( mem [ p + 1 ] .hh .v.RH ) ; 
  119.     } 
  120.     break ; 
  121.       case 5 : 
  122.     flushnodelist ( mem [ p + 1 ] .cint ) ; 
  123.     break ; 
  124.       case 14 : 
  125.     {
  126.       freenode ( p , 3 ) ; 
  127.       goto lab30 ; 
  128.     } 
  129.     break ; 
  130.       case 15 : 
  131.     {
  132.       flushnodelist ( mem [ p + 1 ] .hh .v.LH ) ; 
  133.       flushnodelist ( mem [ p + 1 ] .hh .v.RH ) ; 
  134.       flushnodelist ( mem [ p + 2 ] .hh .v.LH ) ; 
  135.       flushnodelist ( mem [ p + 2 ] .hh .v.RH ) ; 
  136.       freenode ( p , 3 ) ; 
  137.       goto lab30 ; 
  138.     } 
  139.     break ; 
  140.       case 16 : 
  141.       case 17 : 
  142.       case 18 : 
  143.       case 19 : 
  144.       case 20 : 
  145.       case 21 : 
  146.       case 22 : 
  147.       case 23 : 
  148.       case 24 : 
  149.       case 27 : 
  150.       case 26 : 
  151.       case 29 : 
  152.       case 28 : 
  153.     {
  154.       if ( mem [ p + 1 ] .hh .v.RH >= 2 ) 
  155.       flushnodelist ( mem [ p + 1 ] .hh .v.LH ) ; 
  156.       if ( mem [ p + 2 ] .hh .v.RH >= 2 ) 
  157.       flushnodelist ( mem [ p + 2 ] .hh .v.LH ) ; 
  158.       if ( mem [ p + 3 ] .hh .v.RH >= 2 ) 
  159.       flushnodelist ( mem [ p + 3 ] .hh .v.LH ) ; 
  160.       if ( mem [ p ] .hh.b0 == 24 ) 
  161.       freenode ( p , 5 ) ; 
  162.       else if ( mem [ p ] .hh.b0 == 28 ) 
  163.       freenode ( p , 5 ) ; 
  164.       else freenode ( p , 4 ) ; 
  165.       goto lab30 ; 
  166.     } 
  167.     break ; 
  168.       case 30 : 
  169.       case 31 : 
  170.     {
  171.       freenode ( p , 4 ) ; 
  172.       goto lab30 ; 
  173.     } 
  174.     break ; 
  175.       case 25 : 
  176.     {
  177.       flushnodelist ( mem [ p + 2 ] .hh .v.LH ) ; 
  178.       flushnodelist ( mem [ p + 3 ] .hh .v.LH ) ; 
  179.       freenode ( p , 6 ) ; 
  180.       goto lab30 ; 
  181.     } 
  182.     break ; 
  183.     default: 
  184.     confusion ( 221 ) ; 
  185.     break ; 
  186.       } 
  187.       freenode ( p , 2 ) ; 
  188.       lab30: ; 
  189.     } 
  190.     p = q ; 
  191.   } 
  192. halfword zcopynodelist ( p ) 
  193. halfword p ; 
  194. {register halfword Result; copynodelist_regmem 
  195.   halfword h  ; 
  196.   halfword q  ; 
  197.   halfword r  ; 
  198.   schar words  ; 
  199.   h = getavail () ; 
  200.   q = h ; 
  201.   while ( p != 0 ) {
  202.       
  203.     words = 1 ; 
  204.     if ( ( p >= himemmin ) ) 
  205.     r = getavail () ; 
  206.     else switch ( mem [ p ] .hh.b0 ) 
  207.     {case 0 : 
  208.     case 1 : 
  209.     case 13 : 
  210.       {
  211.     r = getnode ( 7 ) ; 
  212.     mem [ r + 6 ] = mem [ p + 6 ] ; 
  213.     mem [ r + 5 ] = mem [ p + 5 ] ; 
  214.     mem [ r + 5 ] .hh .v.RH = copynodelist ( mem [ p + 5 ] .hh .v.RH ) ; 
  215.     words = 5 ; 
  216.       } 
  217.       break ; 
  218.     case 2 : 
  219.       {
  220.     r = getnode ( 4 ) ; 
  221.     words = 4 ; 
  222.       } 
  223.       break ; 
  224.     case 3 : 
  225.       {
  226.     r = getnode ( 5 ) ; 
  227.     mem [ r + 4 ] = mem [ p + 4 ] ; 
  228.     incr ( mem [ mem [ p + 4 ] .hh .v.RH ] .hh .v.RH ) ; 
  229.     mem [ r + 4 ] .hh .v.LH = copynodelist ( mem [ p + 4 ] .hh .v.LH ) ; 
  230.     words = 4 ; 
  231.       } 
  232.       break ; 
  233.     case 8 : 
  234.       switch ( mem [ p ] .hh.b1 ) 
  235.       {case 0 : 
  236.     {
  237.       r = getnode ( 3 ) ; 
  238.       words = 3 ; 
  239.     } 
  240.     break ; 
  241.       case 1 : 
  242.       case 3 : 
  243.     {
  244.       r = getnode ( 2 ) ; 
  245.       incr ( mem [ mem [ p + 1 ] .hh .v.RH ] .hh .v.LH ) ; 
  246.       words = 2 ; 
  247.     } 
  248.     break ; 
  249.       case 2 : 
  250.     {
  251.       r = getnode ( 2 ) ; 
  252.       words = 2 ; 
  253.     } 
  254.     break ; 
  255.     default: 
  256.     confusion ( 1136 ) ; 
  257.     break ; 
  258.       } 
  259.       break ; 
  260.     case 10 : 
  261.       {
  262.     r = getnode ( 2 ) ; 
  263.     incr ( mem [ mem [ p + 1 ] .hh .v.LH ] .hh .v.RH ) ; 
  264.     mem [ r + 1 ] .hh .v.LH = mem [ p + 1 ] .hh .v.LH ; 
  265.     mem [ r + 1 ] .hh .v.RH = copynodelist ( mem [ p + 1 ] .hh .v.RH ) ; 
  266.       } 
  267.       break ; 
  268.     case 11 : 
  269.     case 9 : 
  270.     case 12 : 
  271.       {
  272.     r = getnode ( 2 ) ; 
  273.     words = 2 ; 
  274.       } 
  275.       break ; 
  276.     case 6 : 
  277.       {
  278.     r = getnode ( 2 ) ; 
  279.     mem [ r + 1 ] = mem [ p + 1 ] ; 
  280.     mem [ r + 1 ] .hh .v.RH = copynodelist ( mem [ p + 1 ] .hh .v.RH ) ; 
  281.       } 
  282.       break ; 
  283.     case 7 : 
  284.       {
  285.     r = getnode ( 2 ) ; 
  286.     mem [ r + 1 ] .hh .v.LH = copynodelist ( mem [ p + 1 ] .hh .v.LH ) ; 
  287.     mem [ r + 1 ] .hh .v.RH = copynodelist ( mem [ p + 1 ] .hh .v.RH ) ; 
  288.       } 
  289.       break ; 
  290.     case 4 : 
  291.       {
  292.     r = getnode ( 2 ) ; 
  293.     incr ( mem [ mem [ p + 1 ] .cint ] .hh .v.LH ) ; 
  294.     words = 2 ; 
  295.       } 
  296.       break ; 
  297.     case 5 : 
  298.       {
  299.     r = getnode ( 2 ) ; 
  300.     mem [ r + 1 ] .cint = copynodelist ( mem [ p + 1 ] .cint ) ; 
  301.       } 
  302.       break ; 
  303.       default: 
  304.       confusion ( 222 ) ; 
  305.       break ; 
  306.     } 
  307.     while ( words > 0 ) {
  308.     
  309.       decr ( words ) ; 
  310.       mem [ r + words ] = mem [ p + words ] ; 
  311.     } 
  312.     mem [ q ] .hh .v.RH = r ; 
  313.     q = r ; 
  314.     p = mem [ p ] .hh .v.RH ; 
  315.   } 
  316.   mem [ q ] .hh .v.RH = 0 ; 
  317.   q = mem [ h ] .hh .v.RH ; 
  318.   {
  319.     mem [ h ] .hh .v.RH = avail ; 
  320.     avail = h ; 
  321.     ;
  322. #ifdef STAT
  323.     decr ( dynused ) ; 
  324. #endif /* STAT */
  325.   } 
  326.   Result = q ; 
  327.   return(Result) ; 
  328. zprintmode ( m ) 
  329. integer m ; 
  330. {printmode_regmem 
  331.   if ( m > 0 ) 
  332.   switch ( m / ( 100 ) ) 
  333.   {case 0 : 
  334.     print ( 223 ) ; 
  335.     break ; 
  336.   case 1 : 
  337.     print ( 224 ) ; 
  338.     break ; 
  339.   case 2 : 
  340.     print ( 225 ) ; 
  341.     break ; 
  342.   } 
  343.   else if ( m == 0 ) 
  344.   print ( 226 ) ; 
  345.   else switch ( ( - (integer) m ) / ( 100 ) ) 
  346.   {case 0 : 
  347.     print ( 227 ) ; 
  348.     break ; 
  349.   case 1 : 
  350.     print ( 228 ) ; 
  351.     break ; 
  352.   case 2 : 
  353.     print ( 211 ) ; 
  354.     break ; 
  355.   } 
  356.   print ( 229 ) ; 
  357. pushnest () {
  358.     pushnest_regmem 
  359.   if ( nestptr > maxneststack ) 
  360.   {
  361.     maxneststack = nestptr ; 
  362.     if ( nestptr == nestsize ) 
  363.     overflow ( 230 , nestsize ) ; 
  364.   } 
  365.   nest [ nestptr ] = curlist ; 
  366.   incr ( nestptr ) ; 
  367.   curlist .headfield = getavail () ; 
  368.   curlist .tailfield = curlist .headfield ; 
  369.   curlist .pgfield = 0 ; 
  370.   curlist .mlfield = line ; 
  371. popnest () {
  372.     popnest_regmem 
  373.   {
  374.     mem [ curlist .headfield ] .hh .v.RH = avail ; 
  375.     avail = curlist .headfield ; 
  376.     ;
  377. #ifdef STAT
  378.     decr ( dynused ) ; 
  379. #endif /* STAT */
  380.   } 
  381.   decr ( nestptr ) ; 
  382.   curlist = nest [ nestptr ] ; 
  383. showactivities () {
  384.     showactivities_regmem 
  385.   integer p  ; 
  386.   short m  ; 
  387.   integer a  ; 
  388.   halfword q, r  ; 
  389.   integer t  ; 
  390.   nest [ nestptr ] = curlist ; 
  391.   printnl ( 206 ) ; 
  392.   println () ; 
  393.   {register integer for_end; p = nestptr ; for_end = 0 ; if ( p >= for_end) 
  394.   do 
  395.     {
  396.       m = nest [ p ] .modefield ; 
  397.       a = nest [ p ] .auxfield ; 
  398.       printnl ( 231 ) ; 
  399.       printmode ( m ) ; 
  400.       print ( 232 ) ; 
  401.       printint ( abs ( nest [ p ] .mlfield ) ) ; 
  402.       if ( nest [ p ] .mlfield < 0 ) 
  403.       print ( 233 ) ; 
  404.       if ( p == 0 ) 
  405.       {
  406.     if ( memtop - 2 != pagetail ) 
  407.     {
  408.       printnl ( 828 ) ; 
  409.       if ( outputactive ) 
  410.       print ( 829 ) ; 
  411.       showbox ( mem [ memtop - 2 ] .hh .v.RH ) ; 
  412.       if ( pagecontents > 0 ) 
  413.       {
  414.         printnl ( 830 ) ; 
  415.         printtotals () ; 
  416.         printnl ( 831 ) ; 
  417.         printscaled ( pagesofar [ 0 ] ) ; 
  418.         r = mem [ memtop ] .hh .v.RH ; 
  419.         while ( r != memtop ) {
  420.         
  421.           println () ; 
  422.           printesc ( 198 ) ; 
  423.           t = mem [ r ] .hh.b1 ; 
  424.           printint ( t ) ; 
  425.           print ( 832 ) ; 
  426.           t = xovern ( mem [ r + 3 ] .cint , 1000 ) * eqtb [ 5317 + t ] 
  427.           .cint ; 
  428.           printscaled ( t ) ; 
  429.           if ( mem [ r ] .hh.b0 == 1 ) 
  430.           {
  431.         q = memtop - 2 ; 
  432.         t = 0 ; 
  433.         do {
  434.             q = mem [ q ] .hh .v.RH ; 
  435.           if ( ( mem [ q ] .hh.b0 == 3 ) && ( mem [ q ] .hh.b1 == mem 
  436.           [ r ] .hh.b1 ) ) 
  437.           incr ( t ) ; 
  438.         } while ( ! ( q == mem [ r + 1 ] .hh .v.LH ) ) ; 
  439.         print ( 833 ) ; 
  440.         printint ( t ) ; 
  441.         print ( 834 ) ; 
  442.           } 
  443.           r = mem [ r ] .hh .v.RH ; 
  444.         } 
  445.       } 
  446.     } 
  447.     if ( mem [ memtop - 1 ] .hh .v.RH != 0 ) 
  448.     printnl ( 234 ) ; 
  449.       } 
  450.       showbox ( mem [ nest [ p ] .headfield ] .hh .v.RH ) ; 
  451.       switch ( abs ( m ) / ( 100 ) ) 
  452.       {case 0 : 
  453.     {
  454.       printnl ( 235 ) ; 
  455.       if ( a <= -65536000L ) 
  456.       print ( 236 ) ; 
  457.       else printscaled ( a ) ; 
  458.       if ( nest [ p ] .pgfield != 0 ) 
  459.       {
  460.         print ( 237 ) ; 
  461.         printint ( nest [ p ] .pgfield ) ; 
  462.         print ( 238 ) ; 
  463.         if ( nest [ p ] .pgfield != 1 ) 
  464.         printchar ( 115 ) ; 
  465.       } 
  466.     } 
  467.     break ; 
  468.       case 1 : 
  469.     {
  470.       printnl ( 239 ) ; 
  471.       printint ( a ) ; 
  472.     } 
  473.     break ; 
  474.       case 2 : 
  475.     if ( a != 0 ) 
  476.     {
  477.       print ( 240 ) ; 
  478.       showbox ( a ) ; 
  479.     } 
  480.     break ; 
  481.       } 
  482.     } 
  483.   while ( p-- > for_end ) ; } 
  484. zprintparam ( n ) 
  485. integer n ; 
  486. {printparam_regmem 
  487.   switch ( n ) 
  488.   {case 0 : 
  489.     printesc ( 285 ) ; 
  490.     break ; 
  491.   case 1 : 
  492.     printesc ( 286 ) ; 
  493.     break ; 
  494.   case 2 : 
  495.     printesc ( 287 ) ; 
  496.     break ; 
  497.   case 3 : 
  498.     printesc ( 288 ) ; 
  499.     break ; 
  500.   case 4 : 
  501.     printesc ( 289 ) ; 
  502.     break ; 
  503.   case 5 : 
  504.     printesc ( 290 ) ; 
  505.     break ; 
  506.   case 6 : 
  507.     printesc ( 291 ) ; 
  508.     break ; 
  509.   case 7 : 
  510.     printesc ( 292 ) ; 
  511.     break ; 
  512.   case 8 : 
  513.     printesc ( 293 ) ; 
  514.     break ; 
  515.   case 9 : 
  516.     printesc ( 294 ) ; 
  517.     break ; 
  518.   case 10 : 
  519.     printesc ( 295 ) ; 
  520.     break ; 
  521.   case 11 : 
  522.     printesc ( 296 ) ; 
  523.     break ; 
  524.   case 12 : 
  525.     printesc ( 297 ) ; 
  526.     break ; 
  527.   case 13 : 
  528.     printesc ( 298 ) ; 
  529.     break ; 
  530.   case 14 : 
  531.     printesc ( 299 ) ; 
  532.     break ; 
  533.   case 15 : 
  534.     printesc ( 300 ) ; 
  535.     break ; 
  536.   case 16 : 
  537.     printesc ( 301 ) ; 
  538.     break ; 
  539.   case 17 : 
  540.     printesc ( 302 ) ; 
  541.     break ; 
  542.   case 18 : 
  543.     printesc ( 303 ) ; 
  544.     break ; 
  545.   case 19 : 
  546.     printesc ( 304 ) ; 
  547.     break ; 
  548.   case 20 : 
  549.     printesc ( 305 ) ; 
  550.     break ; 
  551.   case 21 : 
  552.     printesc ( 306 ) ; 
  553.     break ; 
  554.   case 22 : 
  555.     printesc ( 307 ) ; 
  556.     break ; 
  557.   case 23 : 
  558.     printesc ( 308 ) ; 
  559.     break ; 
  560.   case 24 : 
  561.     printesc ( 309 ) ; 
  562.     break ; 
  563.   case 25 : 
  564.     printesc ( 310 ) ; 
  565.     break ; 
  566.   case 26 : 
  567.     printesc ( 311 ) ; 
  568.     break ; 
  569.   case 27 : 
  570.     printesc ( 312 ) ; 
  571.     break ; 
  572.   case 28 : 
  573.     printesc ( 313 ) ; 
  574.     break ; 
  575.   case 29 : 
  576.     printesc ( 314 ) ; 
  577.     break ; 
  578.   case 30 : 
  579.     printesc ( 315 ) ; 
  580.     break ; 
  581.   case 31 : 
  582.     printesc ( 316 ) ; 
  583.     break ; 
  584.   case 32 : 
  585.     printesc ( 317 ) ; 
  586.     break ; 
  587.   case 33 : 
  588.     printesc ( 318 ) ; 
  589.     break ; 
  590.   case 34 : 
  591.     printesc ( 319 ) ; 
  592.     break ; 
  593.   case 35 : 
  594.     printesc ( 320 ) ; 
  595.     break ; 
  596.   case 36 : 
  597.     printesc ( 321 ) ; 
  598.     break ; 
  599.   case 37 : 
  600.     printesc ( 322 ) ; 
  601.     break ; 
  602.   case 38 : 
  603.     printesc ( 323 ) ; 
  604.     break ; 
  605.   case 39 : 
  606.     printesc ( 324 ) ; 
  607.     break ; 
  608.   case 40 : 
  609.     printesc ( 325 ) ; 
  610.     break ; 
  611.   case 41 : 
  612.     printesc ( 326 ) ; 
  613.     break ; 
  614.   case 42 : 
  615.     printesc ( 327 ) ; 
  616.     break ; 
  617.   case 43 : 
  618.     printesc ( 328 ) ; 
  619.     break ; 
  620.   case 44 : 
  621.     printesc ( 329 ) ; 
  622.     break ; 
  623.   case 45 : 
  624.     printesc ( 330 ) ; 
  625.     break ; 
  626.   case 46 : 
  627.     printesc ( 331 ) ; 
  628.     break ; 
  629.   case 47 : 
  630.     printesc ( 332 ) ; 
  631.     break ; 
  632.   case 48 : 
  633.     printesc ( 333 ) ; 
  634.     break ; 
  635.   case 49 : 
  636.     printesc ( 334 ) ; 
  637.     break ; 
  638.     default: 
  639.     print ( 335 ) ; 
  640.     break ; 
  641.   } 
  642. begindiagnostic () {
  643.     begindiagnostic_regmem 
  644.   oldsetting = selector ; 
  645.   if ( ( eqtb [ 5296 ] .cint <= 0 ) && ( selector == 19 ) ) 
  646.   {
  647.     decr ( selector ) ; 
  648.     if ( history == 0 ) 
  649.     history = 1 ; 
  650.   } 
  651. zenddiagnostic ( blankline ) 
  652. boolean blankline ; 
  653. {enddiagnostic_regmem 
  654.   printnl ( 206 ) ; 
  655.   if ( blankline ) 
  656.   println () ; 
  657.   selector = oldsetting ; 
  658. zprintlengthparam ( n ) 
  659. integer n ; 
  660. {printlengthparam_regmem 
  661.   switch ( n ) 
  662.   {case 0 : 
  663.     printesc ( 338 ) ; 
  664.     break ; 
  665.   case 1 : 
  666.     printesc ( 339 ) ; 
  667.     break ; 
  668.   case 2 : 
  669.     printesc ( 340 ) ; 
  670.     break ; 
  671.   case 3 : 
  672.     printesc ( 341 ) ; 
  673.     break ; 
  674.   case 4 : 
  675.     printesc ( 342 ) ; 
  676.     break ; 
  677.   case 5 : 
  678.     printesc ( 343 ) ; 
  679.     break ; 
  680.   case 6 : 
  681.     printesc ( 344 ) ; 
  682.     break ; 
  683.   case 7 : 
  684.     printesc ( 345 ) ; 
  685.     break ; 
  686.   case 8 : 
  687.     printesc ( 346 ) ; 
  688.     break ; 
  689.   case 9 : 
  690.     printesc ( 347 ) ; 
  691.     break ; 
  692.   case 10 : 
  693.     printesc ( 348 ) ; 
  694.     break ; 
  695.   case 11 : 
  696.     printesc ( 349 ) ; 
  697.     break ; 
  698.   case 12 : 
  699.     printesc ( 350 ) ; 
  700.     break ; 
  701.   case 13 : 
  702.     printesc ( 351 ) ; 
  703.     break ; 
  704.   case 14 : 
  705.     printesc ( 352 ) ; 
  706.     break ; 
  707.   case 15 : 
  708.     printesc ( 353 ) ; 
  709.     break ; 
  710.   case 16 : 
  711.     printesc ( 354 ) ; 
  712.     break ; 
  713.   case 17 : 
  714.     printesc ( 355 ) ; 
  715.     break ; 
  716.   case 18 : 
  717.     printesc ( 356 ) ; 
  718.     break ; 
  719.   case 19 : 
  720.     printesc ( 357 ) ; 
  721.     break ; 
  722.     default: 
  723.     print ( 358 ) ; 
  724.     break ; 
  725.   } 
  726. zprintcmdchr ( cmd , chrcode ) 
  727. quarterword cmd ; 
  728. halfword chrcode ; 
  729. {printcmdchr_regmem 
  730.   switch ( cmd ) 
  731.   {case 1 : 
  732.     {
  733.       print ( 415 ) ; 
  734.       printASCII ( chrcode ) ; 
  735.     } 
  736.     break ; 
  737.   case 2 : 
  738.     {
  739.       print ( 416 ) ; 
  740.       printASCII ( chrcode ) ; 
  741.     } 
  742.     break ; 
  743.   case 3 : 
  744.     {
  745.       print ( 417 ) ; 
  746.       printASCII ( chrcode ) ; 
  747.     } 
  748.     break ; 
  749.   case 6 : 
  750.     {
  751.       print ( 418 ) ; 
  752.       printASCII ( chrcode ) ; 
  753.     } 
  754.     break ; 
  755.   case 7 : 
  756.     {
  757.       print ( 419 ) ; 
  758.       printASCII ( chrcode ) ; 
  759.     } 
  760.     break ; 
  761.   case 8 : 
  762.     {
  763.       print ( 420 ) ; 
  764.       printASCII ( chrcode ) ; 
  765.     } 
  766.     break ; 
  767.   case 9 : 
  768.     print ( 421 ) ; 
  769.     break ; 
  770.   case 10 : 
  771.     {
  772.       print ( 422 ) ; 
  773.       printASCII ( chrcode ) ; 
  774.     } 
  775.     break ; 
  776.   case 11 : 
  777.     {
  778.       print ( 423 ) ; 
  779.       printASCII ( chrcode ) ; 
  780.     } 
  781.     break ; 
  782.   case 12 : 
  783.     {
  784.       print ( 424 ) ; 
  785.       printASCII ( chrcode ) ; 
  786.     } 
  787.     break ; 
  788.   case 74 : 
  789.   case 75 : 
  790.     if ( chrcode < 3544 ) 
  791.     printskipparam ( chrcode - 3526 ) ; 
  792.     else if ( chrcode < 3800 ) 
  793.     {
  794.       printesc ( 260 ) ; 
  795.       printint ( chrcode - 3544 ) ; 
  796.     } 
  797.     else {
  798.     
  799.       printesc ( 261 ) ; 
  800.       printint ( chrcode - 3800 ) ; 
  801.     } 
  802.     break ; 
  803.   case 71 : 
  804.     if ( chrcode >= 4066 ) 
  805.     {
  806.       printesc ( 272 ) ; 
  807.       printint ( chrcode - 4066 ) ; 
  808.     } 
  809.     else switch ( chrcode ) 
  810.     {case 4057 : 
  811.       printesc ( 263 ) ; 
  812.       break ; 
  813.     case 4058 : 
  814.       printesc ( 264 ) ; 
  815.       break ; 
  816.     case 4059 : 
  817.       printesc ( 265 ) ; 
  818.       break ; 
  819.     case 4060 : 
  820.       printesc ( 266 ) ; 
  821.       break ; 
  822.     case 4061 : 
  823.       printesc ( 267 ) ; 
  824.       break ; 
  825.     case 4062 : 
  826.       printesc ( 268 ) ; 
  827.       break ; 
  828.     case 4063 : 
  829.       printesc ( 269 ) ; 
  830.       break ; 
  831.     case 4064 : 
  832.       printesc ( 270 ) ; 
  833.       break ; 
  834.       default: 
  835.       printesc ( 271 ) ; 
  836.       break ; 
  837.     } 
  838.     break ; 
  839.   case 72 : 
  840.     if ( chrcode < 5317 ) 
  841.     printparam ( chrcode - 5267 ) ; 
  842.     else {
  843.     
  844.       printesc ( 336 ) ; 
  845.       printint ( chrcode - 5317 ) ; 
  846.     } 
  847.     break ; 
  848.   case 73 : 
  849.     if ( chrcode < 5721 ) 
  850.     printlengthparam ( chrcode - 5701 ) ; 
  851.     else {
  852.     
  853.       printesc ( 359 ) ; 
  854.       printint ( chrcode - 5721 ) ; 
  855.     } 
  856.     break ; 
  857.   case 45 : 
  858.     printesc ( 367 ) ; 
  859.     break ; 
  860.   case 89 : 
  861.     printesc ( 368 ) ; 
  862.     break ; 
  863.   case 40 : 
  864.     printesc ( 369 ) ; 
  865.     break ; 
  866.   case 41 : 
  867.     printesc ( 370 ) ; 
  868.     break ; 
  869.   case 76 : 
  870.     printesc ( 378 ) ; 
  871.     break ; 
  872.   case 61 : 
  873.     printesc ( 371 ) ; 
  874.     break ; 
  875.   case 42 : 
  876.     printesc ( 389 ) ; 
  877.     break ; 
  878.   case 16 : 
  879.     printesc ( 372 ) ; 
  880.     break ; 
  881.   case 106 : 
  882.     printesc ( 363 ) ; 
  883.     break ; 
  884.   case 87 : 
  885.     printesc ( 377 ) ; 
  886.     break ; 
  887.   case 15 : 
  888.     printesc ( 373 ) ; 
  889.     break ; 
  890.   case 91 : 
  891.     printesc ( 374 ) ; 
  892.     break ; 
  893.   case 66 : 
  894.     printesc ( 364 ) ; 
  895.     break ; 
  896.   case 62 : 
  897.     printesc ( 375 ) ; 
  898.     break ; 
  899.   case 64 : 
  900.     printesc ( 32 ) ; 
  901.     break ; 
  902.   case 101 : 
  903.     printesc ( 376 ) ; 
  904.     break ; 
  905.   case 32 : 
  906.     printesc ( 379 ) ; 
  907.     break ; 
  908.   case 36 : 
  909.     printesc ( 380 ) ; 
  910.     break ; 
  911.   case 39 : 
  912.     printesc ( 381 ) ; 
  913.     break ; 
  914.   case 37 : 
  915.     printesc ( 198 ) ; 
  916.     break ; 
  917.   case 44 : 
  918.     printesc ( 47 ) ; 
  919.     break ; 
  920.   case 18 : 
  921.     printesc ( 219 ) ; 
  922.     break ; 
  923.   case 46 : 
  924.     printesc ( 382 ) ; 
  925.     break ; 
  926.   case 17 : 
  927.     printesc ( 383 ) ; 
  928.     break ; 
  929.   case 54 : 
  930.     printesc ( 384 ) ; 
  931.     break ; 
  932.   case 90 : 
  933.     printesc ( 385 ) ; 
  934.     break ; 
  935.   case 34 : 
  936.     printesc ( 386 ) ; 
  937.     break ; 
  938.   case 102 : 
  939.     printesc ( 387 ) ; 
  940.     break ; 
  941.   case 55 : 
  942.     printesc ( 203 ) ; 
  943.     break ; 
  944.   case 63 : 
  945.     printesc ( 388 ) ; 
  946.     break ; 
  947.   case 65 : 
  948.     printesc ( 391 ) ; 
  949.     break ; 
  950.   case 95 : 
  951.     printesc ( 392 ) ; 
  952.     break ; 
  953.   case 0 : 
  954.     printesc ( 393 ) ; 
  955.     break ; 
  956.   case 97 : 
  957.     printesc ( 394 ) ; 
  958.     break ; 
  959.   case 79 : 
  960.     printesc ( 390 ) ; 
  961.     break ; 
  962.   case 83 : 
  963.     printesc ( 273 ) ; 
  964.     break ; 
  965.   case 108 : 
  966.     printesc ( 395 ) ; 
  967.     break ; 
  968.   case 70 : 
  969.     printesc ( 272 ) ; 
  970.     break ; 
  971.   case 38 : 
  972.     printesc ( 220 ) ; 
  973.     break ; 
  974.   case 33 : 
  975.     printesc ( 396 ) ; 
  976.     break ; 
  977.   case 56 : 
  978.     printesc ( 397 ) ; 
  979.     break ; 
  980.   case 35 : 
  981.     printesc ( 398 ) ; 
  982.     break ; 
  983.   case 13 : 
  984.     printesc ( 455 ) ; 
  985.     break ; 
  986.   case 103 : 
  987.     if ( chrcode == 0 ) 
  988.     printesc ( 487 ) ; 
  989.     else printesc ( 488 ) ; 
  990.     break ; 
  991.   case 109 : 
  992.     switch ( chrcode ) 
  993.     {case 1 : 
  994.       printesc ( 490 ) ; 
  995.       break ; 
  996.     case 2 : 
  997.       printesc ( 491 ) ; 
  998.       break ; 
  999.     case 3 : 
  1000.       printesc ( 492 ) ; 
  1001.       break ; 
  1002.     case 4 : 
  1003.       printesc ( 493 ) ; 
  1004.       break ; 
  1005.       default: 
  1006.       printesc ( 489 ) ; 
  1007.       break ; 
  1008.     } 
  1009.     break ; 
  1010.   case 88 : 
  1011.     if ( chrcode == 0 ) 
  1012.     printesc ( 336 ) ; 
  1013.     else if ( chrcode == 1 ) 
  1014.     printesc ( 359 ) ; 
  1015.     else if ( chrcode == 2 ) 
  1016.     printesc ( 260 ) ; 
  1017.     else printesc ( 261 ) ; 
  1018.     break ; 
  1019.   case 78 : 
  1020.     if ( chrcode == 1 ) 
  1021.     printesc ( 527 ) ; 
  1022.     else printesc ( 526 ) ; 
  1023.     break ; 
  1024.   case 81 : 
  1025.     if ( chrcode == 0 ) 
  1026.     printesc ( 528 ) ; 
  1027.     else printesc ( 529 ) ; 
  1028.     break ; 
  1029.   case 82 : 
  1030.     if ( chrcode == 1 ) 
  1031.     printesc ( 530 ) ; 
  1032.     else if ( chrcode == 3 ) 
  1033.     printesc ( 531 ) ; 
  1034.     else printesc ( 532 ) ; 
  1035.     break ; 
  1036.   case 69 : 
  1037.     if ( chrcode == 0 ) 
  1038.     printesc ( 533 ) ; 
  1039.     else if ( chrcode == 1 ) 
  1040.     printesc ( 534 ) ; 
  1041.     else printesc ( 535 ) ; 
  1042.     break ; 
  1043.   case 107 : 
  1044.     switch ( chrcode ) 
  1045.     {case 0 : 
  1046.       printesc ( 592 ) ; 
  1047.       break ; 
  1048.     case 1 : 
  1049.       printesc ( 593 ) ; 
  1050.       break ; 
  1051.     case 2 : 
  1052.       printesc ( 594 ) ; 
  1053.       break ; 
  1054.     case 3 : 
  1055.       printesc ( 595 ) ; 
  1056.       break ; 
  1057.     case 4 : 
  1058.       printesc ( 596 ) ; 
  1059.       break ; 
  1060.       default: 
  1061.       printesc ( 597 ) ; 
  1062.       break ; 
  1063.     } 
  1064.     break ; 
  1065.   case 104 : 
  1066.     switch ( chrcode ) 
  1067.     {case 1 : 
  1068.       printesc ( 614 ) ; 
  1069.       break ; 
  1070.     case 2 : 
  1071.       printesc ( 615 ) ; 
  1072.       break ; 
  1073.     case 3 : 
  1074.       printesc ( 616 ) ; 
  1075.       break ; 
  1076.     case 4 : 
  1077.       printesc ( 617 ) ; 
  1078.       break ; 
  1079.     case 5 : 
  1080.       printesc ( 618 ) ; 
  1081.       break ; 
  1082.     case 6 : 
  1083.       printesc ( 619 ) ; 
  1084.       break ; 
  1085.     case 7 : 
  1086.       printesc ( 620 ) ; 
  1087.       break ; 
  1088.     case 8 : 
  1089.       printesc ( 621 ) ; 
  1090.       break ; 
  1091.     case 9 : 
  1092.       printesc ( 622 ) ; 
  1093.       break ; 
  1094.     case 10 : 
  1095.       printesc ( 623 ) ; 
  1096.       break ; 
  1097.     case 11 : 
  1098.       printesc ( 624 ) ; 
  1099.       break ; 
  1100.     case 12 : 
  1101.       printesc ( 625 ) ; 
  1102.       break ; 
  1103.     case 13 : 
  1104.       printesc ( 626 ) ; 
  1105.       break ; 
  1106.     case 14 : 
  1107.       printesc ( 627 ) ; 
  1108.       break ; 
  1109.     case 15 : 
  1110.       printesc ( 628 ) ; 
  1111.       break ; 
  1112.     case 16 : 
  1113.       printesc ( 629 ) ; 
  1114.       break ; 
  1115.       default: 
  1116.       printesc ( 613 ) ; 
  1117.       break ; 
  1118.     } 
  1119.     break ; 
  1120.   case 105 : 
  1121.     if ( chrcode == 2 ) 
  1122.     printesc ( 630 ) ; 
  1123.     else if ( chrcode == 4 ) 
  1124.     printesc ( 631 ) ; 
  1125.     else printesc ( 632 ) ; 
  1126.     break ; 
  1127.   case 4 : 
  1128.     if ( chrcode == 128 ) 
  1129.     printesc ( 751 ) ; 
  1130.     else {
  1131.     
  1132.       print ( 755 ) ; 
  1133.       printASCII ( chrcode ) ; 
  1134.     } 
  1135.     break ; 
  1136.   case 5 : 
  1137.     if ( chrcode == 129 ) 
  1138.     printesc ( 752 ) ; 
  1139.     else printesc ( 753 ) ; 
  1140.     break ; 
  1141.   case 80 : 
  1142.     switch ( chrcode ) 
  1143.     {case 0 : 
  1144.       printesc ( 818 ) ; 
  1145.       break ; 
  1146.     case 1 : 
  1147.       printesc ( 819 ) ; 
  1148.       break ; 
  1149.     case 2 : 
  1150.       printesc ( 820 ) ; 
  1151.       break ; 
  1152.     case 3 : 
  1153.       printesc ( 821 ) ; 
  1154.       break ; 
  1155.     case 4 : 
  1156.       printesc ( 822 ) ; 
  1157.       break ; 
  1158.     case 5 : 
  1159.       printesc ( 823 ) ; 
  1160.       break ; 
  1161.     case 6 : 
  1162.       printesc ( 824 ) ; 
  1163.       break ; 
  1164.       default: 
  1165.       printesc ( 825 ) ; 
  1166.       break ; 
  1167.     } 
  1168.     break ; 
  1169.   case 14 : 
  1170.     if ( chrcode == 1 ) 
  1171.     printesc ( 874 ) ; 
  1172.     else printesc ( 873 ) ; 
  1173.     break ; 
  1174.   case 26 : 
  1175.     switch ( chrcode ) 
  1176.     {case 4 : 
  1177.       printesc ( 875 ) ; 
  1178.       break ; 
  1179.     case 0 : 
  1180.       printesc ( 876 ) ; 
  1181.       break ; 
  1182.     case 1 : 
  1183.       printesc ( 877 ) ; 
  1184.       break ; 
  1185.     case 2 : 
  1186.       printesc ( 878 ) ; 
  1187.       break ; 
  1188.       default: 
  1189.       printesc ( 879 ) ; 
  1190.       break ; 
  1191.     } 
  1192.     break ; 
  1193.   case 27 : 
  1194.     switch ( chrcode ) 
  1195.     {case 4 : 
  1196.       printesc ( 880 ) ; 
  1197.       break ; 
  1198.     case 0 : 
  1199.       printesc ( 881 ) ; 
  1200.       break ; 
  1201.     case 1 : 
  1202.       printesc ( 882 ) ; 
  1203.       break ; 
  1204.     case 2 : 
  1205.       printesc ( 883 ) ; 
  1206.       break ; 
  1207.       default: 
  1208.       printesc ( 884 ) ; 
  1209.       break ; 
  1210.     } 
  1211.     break ; 
  1212.   case 28 : 
  1213.     printesc ( 204 ) ; 
  1214.     break ; 
  1215.   case 29 : 
  1216.     printesc ( 208 ) ; 
  1217.     break ; 
  1218.   case 30 : 
  1219.     printesc ( 210 ) ; 
  1220.     break ; 
  1221.   case 21 : 
  1222.     if ( chrcode == 1 ) 
  1223.     printesc ( 902 ) ; 
  1224.     else printesc ( 903 ) ; 
  1225.     break ; 
  1226.   case 22 : 
  1227.     if ( chrcode == 1 ) 
  1228.     printesc ( 904 ) ; 
  1229.     else printesc ( 905 ) ; 
  1230.     break ; 
  1231.   case 20 : 
  1232.     switch ( chrcode ) 
  1233.     {case 0 : 
  1234.       printesc ( 274 ) ; 
  1235.       break ; 
  1236.     case 1 : 
  1237.       printesc ( 906 ) ; 
  1238.       break ; 
  1239.     case 2 : 
  1240.       printesc ( 907 ) ; 
  1241.       break ; 
  1242.     case 3 : 
  1243.       printesc ( 813 ) ; 
  1244.       break ; 
  1245.     case 4 : 
  1246.       printesc ( 908 ) ; 
  1247.       break ; 
  1248.     case 5 : 
  1249.       printesc ( 815 ) ; 
  1250.       break ; 
  1251.       default: 
  1252.       printesc ( 909 ) ; 
  1253.       break ; 
  1254.     } 
  1255.     break ; 
  1256.   case 31 : 
  1257.     if ( chrcode == 100 ) 
  1258.     printesc ( 911 ) ; 
  1259.     else if ( chrcode == 101 ) 
  1260.     printesc ( 912 ) ; 
  1261.     else if ( chrcode == 102 ) 
  1262.     printesc ( 913 ) ; 
  1263.     else printesc ( 910 ) ; 
  1264.     break ; 
  1265.   case 43 : 
  1266.     if ( chrcode == 0 ) 
  1267.     printesc ( 929 ) ; 
  1268.     else printesc ( 928 ) ; 
  1269.     break ; 
  1270.   case 25 : 
  1271.     if ( chrcode == 10 ) 
  1272.     printesc ( 940 ) ; 
  1273.     else if ( chrcode == 11 ) 
  1274.     printesc ( 939 ) ; 
  1275.     else printesc ( 938 ) ; 
  1276.     break ; 
  1277.   case 23 : 
  1278.     if ( chrcode == 1 ) 
  1279.     printesc ( 942 ) ; 
  1280.     else printesc ( 941 ) ; 
  1281.     break ; 
  1282.   case 24 : 
  1283.     if ( chrcode == 1 ) 
  1284.     printesc ( 944 ) ; 
  1285.     else printesc ( 943 ) ; 
  1286.     break ; 
  1287.   case 47 : 
  1288.     if ( chrcode == 1 ) 
  1289.     printesc ( 45 ) ; 
  1290.     else printesc ( 217 ) ; 
  1291.     break ; 
  1292.   case 48 : 
  1293.     if ( chrcode == 1 ) 
  1294.     printesc ( 976 ) ; 
  1295.     else printesc ( 975 ) ; 
  1296.     break ; 
  1297.   case 50 : 
  1298.     switch ( chrcode ) 
  1299.     {case 16 : 
  1300.       printesc ( 719 ) ; 
  1301.       break ; 
  1302.     case 17 : 
  1303.       printesc ( 720 ) ; 
  1304.       break ; 
  1305.     case 18 : 
  1306.       printesc ( 721 ) ; 
  1307.       break ; 
  1308.     case 19 : 
  1309.       printesc ( 722 ) ; 
  1310.       break ; 
  1311.     case 20 : 
  1312.       printesc ( 723 ) ; 
  1313.       break ; 
  1314.     case 21 : 
  1315.       printesc ( 724 ) ; 
  1316.       break ; 
  1317.     case 22 : 
  1318.       printesc ( 725 ) ; 
  1319.       break ; 
  1320.     case 23 : 
  1321.       printesc ( 726 ) ; 
  1322.       break ; 
  1323.     case 26 : 
  1324.       printesc ( 728 ) ; 
  1325.       break ; 
  1326.       default: 
  1327.       printesc ( 727 ) ; 
  1328.       break ; 
  1329.     } 
  1330.     break ; 
  1331.   case 51 : 
  1332.     if ( chrcode == 1 ) 
  1333.     printesc ( 731 ) ; 
  1334.     else if ( chrcode == 2 ) 
  1335.     printesc ( 732 ) ; 
  1336.     else printesc ( 977 ) ; 
  1337.     break ; 
  1338.   case 53 : 
  1339.     printstyle ( chrcode ) ; 
  1340.     break ; 
  1341.   case 52 : 
  1342.     switch ( chrcode ) 
  1343.     {case 1 : 
  1344.       printesc ( 996 ) ; 
  1345.       break ; 
  1346.     case 2 : 
  1347.       printesc ( 997 ) ; 
  1348.       break ; 
  1349.     case 3 : 
  1350.       printesc ( 998 ) ; 
  1351.       break ; 
  1352.     case 4 : 
  1353.       printesc ( 999 ) ; 
  1354.       break ; 
  1355.     case 5 : 
  1356.       printesc ( 1000 ) ; 
  1357.       break ; 
  1358.       default: 
  1359.       printesc ( 995 ) ; 
  1360.       break ; 
  1361.     } 
  1362.     break ; 
  1363.   case 49 : 
  1364.     if ( chrcode == 30 ) 
  1365.     printesc ( 729 ) ; 
  1366.     else printesc ( 730 ) ; 
  1367.     break ; 
  1368.   case 92 : 
  1369.     if ( chrcode == 1 ) 
  1370.     printesc ( 1019 ) ; 
  1371.     else if ( chrcode == 2 ) 
  1372.     printesc ( 1020 ) ; 
  1373.     else printesc ( 1021 ) ; 
  1374.     break ; 
  1375.   case 96 : 
  1376.     if ( chrcode == 0 ) 
  1377.     printesc ( 1022 ) ; 
  1378.     else if ( chrcode == 1 ) 
  1379.     printesc ( 1023 ) ; 
  1380.     else if ( chrcode == 2 ) 
  1381.     printesc ( 1024 ) ; 
  1382.     else printesc ( 1025 ) ; 
  1383.     break ; 
  1384.   case 93 : 
  1385.     if ( chrcode != 0 ) 
  1386.     printesc ( 1040 ) ; 
  1387.     else printesc ( 1039 ) ; 
  1388.     break ; 
  1389.   case 94 : 
  1390.     switch ( chrcode ) 
  1391.     {case 0 : 
  1392.       printesc ( 1041 ) ; 
  1393.       break ; 
  1394.     case 1 : 
  1395.       printesc ( 1042 ) ; 
  1396.       break ; 
  1397.     case 2 : 
  1398.       printesc ( 1043 ) ; 
  1399.       break ; 
  1400.     case 3 : 
  1401.       printesc ( 1044 ) ; 
  1402.       break ; 
  1403.     case 4 : 
  1404.       printesc ( 1045 ) ; 
  1405.       break ; 
  1406.     case 5 : 
  1407.       printesc ( 1046 ) ; 
  1408.       break ; 
  1409.       default: 
  1410.       printesc ( 1047 ) ; 
  1411.       break ; 
  1412.     } 
  1413.     break ; 
  1414.   case 67 : 
  1415.     {
  1416.       printesc ( 372 ) ; 
  1417.       printhex ( chrcode ) ; 
  1418.     } 
  1419.     break ; 
  1420.   case 68 : 
  1421.     {
  1422.       printesc ( 383 ) ; 
  1423.       printhex ( chrcode ) ; 
  1424.     } 
  1425.     break ; 
  1426.   case 84 : 
  1427.     if ( chrcode == 4627 ) 
  1428.     printesc ( 280 ) ; 
  1429.     else if ( chrcode == 5139 ) 
  1430.     printesc ( 284 ) ; 
  1431.     else if ( chrcode == 4755 ) 
  1432.     printesc ( 281 ) ; 
  1433.     else if ( chrcode == 4883 ) 
  1434.     printesc ( 282 ) ; 
  1435.     else if ( chrcode == 5011 ) 
  1436.     printesc ( 283 ) ; 
  1437.     else printesc ( 337 ) ; 
  1438.     break ; 
  1439.   case 85 : 
  1440.     printsize ( chrcode - 4579 ) ; 
  1441.     break ; 
  1442.   case 98 : 
  1443.     if ( chrcode == 1 ) 
  1444.     printesc ( 803 ) ; 
  1445.     else printesc ( 793 ) ; 
  1446.     break ; 
  1447.   case 77 : 
  1448.     if ( chrcode == 0 ) 
  1449.     printesc ( 1063 ) ; 
  1450.     else printesc ( 1064 ) ; 
  1451.     break ; 
  1452.   case 86 : 
  1453.     {
  1454.       print ( 1072 ) ; 
  1455.       print ( fontname [ chrcode ] ) ; 
  1456.       if ( fontsize [ chrcode ] != fontdsize [ chrcode ] ) 
  1457.       {
  1458.     print ( 598 ) ; 
  1459.     printscaled ( fontsize [ chrcode ] ) ; 
  1460.     print ( 262 ) ; 
  1461.       } 
  1462.     } 
  1463.     break ; 
  1464.   case 99 : 
  1465.     switch ( chrcode ) 
  1466.     {case 0 : 
  1467.       printesc ( 143 ) ; 
  1468.       break ; 
  1469.     case 1 : 
  1470.       printesc ( 144 ) ; 
  1471.       break ; 
  1472.     case 2 : 
  1473.       printesc ( 145 ) ; 
  1474.       break ; 
  1475.       default: 
  1476.       printesc ( 1073 ) ; 
  1477.       break ; 
  1478.     } 
  1479.     break ; 
  1480.   case 60 : 
  1481.     if ( chrcode == 0 ) 
  1482.     printesc ( 1075 ) ; 
  1483.     else printesc ( 1074 ) ; 
  1484.     break ; 
  1485.   case 58 : 
  1486.     if ( chrcode == 0 ) 
  1487.     printesc ( 1076 ) ; 
  1488.     else printesc ( 1077 ) ; 
  1489.     break ; 
  1490.   case 57 : 
  1491.     if ( chrcode == 4755 ) 
  1492.     printesc ( 1083 ) ; 
  1493.     else printesc ( 1084 ) ; 
  1494.     break ; 
  1495.   case 19 : 
  1496.     switch ( chrcode ) 
  1497.     {case 1 : 
  1498.       printesc ( 1086 ) ; 
  1499.       break ; 
  1500.     case 2 : 
  1501.       printesc ( 1087 ) ; 
  1502.       break ; 
  1503.     case 3 : 
  1504.       printesc ( 1088 ) ; 
  1505.       break ; 
  1506.       default: 
  1507.       printesc ( 1085 ) ; 
  1508.       break ; 
  1509.     } 
  1510.     break ; 
  1511.   case 100 : 
  1512.     print ( 1095 ) ; 
  1513.     break ; 
  1514.   case 110 : 
  1515.     print ( 1096 ) ; 
  1516.     break ; 
  1517.   case 111 : 
  1518.     printesc ( 1097 ) ; 
  1519.     break ; 
  1520.   case 112 : 
  1521.     printesc ( 1098 ) ; 
  1522.     break ; 
  1523.   case 113 : 
  1524.     {
  1525.       printesc ( 1019 ) ; 
  1526.       printesc ( 1098 ) ; 
  1527.     } 
  1528.     break ; 
  1529.   case 114 : 
  1530.     printesc ( 1099 ) ; 
  1531.     break ; 
  1532.   case 59 : 
  1533.     switch ( chrcode ) 
  1534.     {case 0 : 
  1535.       printesc ( 1129 ) ; 
  1536.       break ; 
  1537.     case 1 : 
  1538.       printesc ( 452 ) ; 
  1539.       break ; 
  1540.     case 2 : 
  1541.       printesc ( 1130 ) ; 
  1542.       break ; 
  1543.     case 3 : 
  1544.       printesc ( 1131 ) ; 
  1545.       break ; 
  1546.     case 4 : 
  1547.       printesc ( 1132 ) ; 
  1548.       break ; 
  1549.       default: 
  1550.       print ( 1133 ) ; 
  1551.       break ; 
  1552.     } 
  1553.     break ; 
  1554.     default: 
  1555.     print ( 425 ) ; 
  1556.     break ; 
  1557.   } 
  1558. #ifdef STAT
  1559. zshoweqtb ( n ) 
  1560. halfword n ; 
  1561. {showeqtb_regmem 
  1562.   if ( n < 1 ) 
  1563.   printchar ( 63 ) ; 
  1564.   else if ( n < 3526 ) 
  1565.   {
  1566.     sprintcs ( n ) ; 
  1567.     printchar ( 61 ) ; 
  1568.     printcmdchr ( eqtb [ n ] .hh.b0 , eqtb [ n ] .hh .v.RH ) ; 
  1569.     if ( eqtb [ n ] .hh.b0 >= 110 ) 
  1570.     {
  1571.       printchar ( 58 ) ; 
  1572.       showtokenlist ( mem [ eqtb [ n ] .hh .v.RH ] .hh .v.RH , 0 , 32 ) ; 
  1573.     } 
  1574.   } 
  1575.   else if ( n < 4056 ) 
  1576.   if ( n < 3544 ) 
  1577.   {
  1578.     printskipparam ( n - 3526 ) ; 
  1579.     printchar ( 61 ) ; 
  1580.     if ( n < 3541 ) 
  1581.     printspec ( eqtb [ n ] .hh .v.RH , 262 ) ; 
  1582.     else printspec ( eqtb [ n ] .hh .v.RH , 205 ) ; 
  1583.   } 
  1584.   else if ( n < 3800 ) 
  1585.   {
  1586.     printesc ( 260 ) ; 
  1587.     printint ( n - 3544 ) ; 
  1588.     printchar ( 61 ) ; 
  1589.     printspec ( eqtb [ n ] .hh .v.RH , 262 ) ; 
  1590.   } 
  1591.   else {
  1592.       
  1593.     printesc ( 261 ) ; 
  1594.     printint ( n - 3800 ) ; 
  1595.     printchar ( 61 ) ; 
  1596.     printspec ( eqtb [ n ] .hh .v.RH , 205 ) ; 
  1597.   } 
  1598.   else if ( n < 5267 ) 
  1599.   if ( n == 4056 ) 
  1600.   {
  1601.     printesc ( 273 ) ; 
  1602.     printchar ( 61 ) ; 
  1603.     if ( eqtb [ 4056 ] .hh .v.RH == 0 ) 
  1604.     printchar ( 48 ) ; 
  1605.     else printint ( mem [ eqtb [ 4056 ] .hh .v.RH ] .hh .v.LH ) ; 
  1606.   } 
  1607.   else if ( n < 4066 ) 
  1608.   {
  1609.     printcmdchr ( 71 , n ) ; 
  1610.     printchar ( 61 ) ; 
  1611.     if ( eqtb [ n ] .hh .v.RH != 0 ) 
  1612.     showtokenlist ( mem [ eqtb [ n ] .hh .v.RH ] .hh .v.RH , 0 , 32 ) ; 
  1613.   } 
  1614.   else if ( n < 4322 ) 
  1615.   {
  1616.     printesc ( 272 ) ; 
  1617.     printint ( n - 4066 ) ; 
  1618.     printchar ( 61 ) ; 
  1619.     if ( eqtb [ n ] .hh .v.RH != 0 ) 
  1620.     showtokenlist ( mem [ eqtb [ n ] .hh .v.RH ] .hh .v.RH , 0 , 32 ) ; 
  1621.   } 
  1622.   else if ( n < 4578 ) 
  1623.   {
  1624.     printesc ( 274 ) ; 
  1625.     printint ( n - 4322 ) ; 
  1626.     printchar ( 61 ) ; 
  1627.     if ( eqtb [ n ] .hh .v.RH == 0 ) 
  1628.     print ( 275 ) ; 
  1629.     else {
  1630.     
  1631.       depththreshold = 0 ; 
  1632.       breadthmax = 1 ; 
  1633.       shownodelist ( eqtb [ n ] .hh .v.RH ) ; 
  1634.     } 
  1635.   } 
  1636.   else if ( n < 4627 ) 
  1637.   {
  1638.     if ( n == 4578 ) 
  1639.     print ( 276 ) ; 
  1640.     else if ( n < 4595 ) 
  1641.     {
  1642.       printesc ( 277 ) ; 
  1643.       printint ( n - 4579 ) ; 
  1644.     } 
  1645.     else if ( n < 4611 ) 
  1646.     {
  1647.       printesc ( 278 ) ; 
  1648.       printint ( n - 4595 ) ; 
  1649.     } 
  1650.     else {
  1651.     
  1652.       printesc ( 279 ) ; 
  1653.       printint ( n - 4611 ) ; 
  1654.     } 
  1655.     printchar ( 61 ) ; 
  1656.     printesc ( hash [ 3268 + eqtb [ n ] .hh .v.RH ] .v.RH ) ; 
  1657.   } 
  1658.   else if ( n < 5139 ) 
  1659.   {
  1660.     if ( n < 4755 ) 
  1661.     {
  1662.       printesc ( 280 ) ; 
  1663.       printint ( n - 4627 ) ; 
  1664.     } 
  1665.     else if ( n < 4883 ) 
  1666.     {
  1667.       printesc ( 281 ) ; 
  1668.       printint ( n - 4755 ) ; 
  1669.     } 
  1670.     else if ( n < 5011 ) 
  1671.     {
  1672.       printesc ( 282 ) ; 
  1673.       printint ( n - 4883 ) ; 
  1674.     } 
  1675.     else {
  1676.     
  1677.       printesc ( 283 ) ; 
  1678.       printint ( n - 5011 ) ; 
  1679.     } 
  1680.     printchar ( 61 ) ; 
  1681.     printint ( eqtb [ n ] .hh .v.RH ) ; 
  1682.   } 
  1683.   else {
  1684.       
  1685.     printesc ( 284 ) ; 
  1686.     printint ( n - 5139 ) ; 
  1687.     printchar ( 61 ) ; 
  1688.     printint ( eqtb [ n ] .hh .v.RH ) ; 
  1689.   } 
  1690.   else if ( n < 5701 ) 
  1691.   {
  1692.     if ( n < 5317 ) 
  1693.     printparam ( n - 5267 ) ; 
  1694.     else if ( n < 5573 ) 
  1695.     {
  1696.       printesc ( 336 ) ; 
  1697.       printint ( n - 5317 ) ; 
  1698.     } 
  1699.     else {
  1700.     
  1701.       printesc ( 337 ) ; 
  1702.       printint ( n - 5573 ) ; 
  1703.     } 
  1704.     printchar ( 61 ) ; 
  1705.     printint ( eqtb [ n ] .cint ) ; 
  1706.   } 
  1707.   else if ( n <= 5976 ) 
  1708.   {
  1709.     if ( n < 5721 ) 
  1710.     printlengthparam ( n - 5701 ) ; 
  1711.     else {
  1712.     
  1713.       printesc ( 359 ) ; 
  1714.       printint ( n - 5721 ) ; 
  1715.     } 
  1716.     printchar ( 61 ) ; 
  1717.     printscaled ( eqtb [ n ] .cint ) ; 
  1718.     print ( 262 ) ; 
  1719.   } 
  1720.   else printchar ( 63 ) ; 
  1721. #endif /* STAT */
  1722. halfword zidlookup ( j , l ) 
  1723. integer j , l ; 
  1724. {/* 40 */ register halfword Result; idlookup_regmem 
  1725.   integer h  ; 
  1726.   halfword p  ; 
  1727.   halfword k  ; 
  1728.   h = buffer [ j ] ; 
  1729.   {register integer for_end; k = j + 1 ; for_end = j + l - 1 ; if ( k <= 
  1730.   for_end) do 
  1731.     {
  1732.       h = h + h + buffer [ k ] ; 
  1733.       while ( h >= 2551 ) h = h - 2551 ; 
  1734.     } 
  1735.   while ( k++ < for_end ) ; } 
  1736.   p = h + 258 ; 
  1737.   while ( true ) {
  1738.       
  1739.     if ( hash [ p ] .v.RH > 0 ) 
  1740.     if ( ( strstart [ hash [ p ] .v.RH + 1 ] - strstart [ hash [ p ] .v.RH ] ) 
  1741.     == l ) 
  1742.     if ( streqbuf ( hash [ p ] .v.RH , j ) ) 
  1743.     goto lab40 ; 
  1744.     if ( hash [ p ] .v.LH == 0 ) 
  1745.     {
  1746.       if ( nonewcontrolsequence ) 
  1747.       p = 3525 ; 
  1748.       else {
  1749.       
  1750.     if ( hash [ p ] .v.RH > 0 ) 
  1751.     {
  1752.       do {
  1753.           if ( ( hashused == 258 ) ) 
  1754.         overflow ( 362 , 3000 ) ; 
  1755.         decr ( hashused ) ; 
  1756.       } while ( ! ( hash [ hashused ] .v.RH == 0 ) ) ; 
  1757.       hash [ p ] .v.LH = hashused ; 
  1758.       p = hashused ; 
  1759.     } 
  1760.     {
  1761.       if ( poolptr + l > poolsize ) 
  1762.       overflow ( 128 , poolsize - initpoolptr ) ; 
  1763.     } 
  1764.     {register integer for_end; k = j ; for_end = j + l - 1 ; if ( k <= 
  1765.     for_end) do 
  1766.       {
  1767.         strpool [ poolptr ] = buffer [ k ] ; 
  1768.         incr ( poolptr ) ; 
  1769.       } 
  1770.     while ( k++ < for_end ) ; } 
  1771.     hash [ p ] .v.RH = makestring () ; 
  1772.     ;
  1773. #ifdef STAT
  1774.     incr ( cscount ) ; 
  1775. #endif /* STAT */
  1776.       } 
  1777.       goto lab40 ; 
  1778.     } 
  1779.     p = hash [ p ] .v.LH ; 
  1780.   } 
  1781.   lab40: Result = p ; 
  1782.   return(Result) ; 
  1783. znewsavelevel ( c ) 
  1784. groupcode c ; 
  1785. {newsavelevel_regmem 
  1786.   if ( saveptr > maxsavestack ) 
  1787.   {
  1788.     maxsavestack = saveptr ; 
  1789.     if ( maxsavestack > savesize - 6 ) 
  1790.     overflow ( 399 , savesize ) ; 
  1791.   } 
  1792.   savestack [ saveptr ] .hh.b0 = 3 ; 
  1793.   savestack [ saveptr ] .hh.b1 = curgroup ; 
  1794.   savestack [ saveptr ] .hh .v.RH = curboundary ; 
  1795.   if ( curlevel == 255 ) 
  1796.   overflow ( 400 , 255 ) ; 
  1797.   curboundary = saveptr ; 
  1798.   incr ( curlevel ) ; 
  1799.   incr ( saveptr ) ; 
  1800.   curgroup = c ; 
  1801. zeqdestroy ( w ) 
  1802. memoryword w ; 
  1803. {eqdestroy_regmem 
  1804.   halfword q  ; 
  1805.   switch ( w .hh.b0 ) 
  1806.   {case 110 : 
  1807.   case 111 : 
  1808.   case 112 : 
  1809.   case 113 : 
  1810.     deletetokenref ( w .hh .v.RH ) ; 
  1811.     break ; 
  1812.   case 116 : 
  1813.     deleteglueref ( w .hh .v.RH ) ; 
  1814.     break ; 
  1815.   case 117 : 
  1816.     {
  1817.       q = w .hh .v.RH ; 
  1818.       if ( q != 0 ) 
  1819.       freenode ( q , mem [ q ] .hh .v.LH + mem [ q ] .hh .v.LH + 1 ) ; 
  1820.     } 
  1821.     break ; 
  1822.   case 118 : 
  1823.     flushnodelist ( w .hh .v.RH ) ; 
  1824.     break ; 
  1825.     default: 
  1826.     ; 
  1827.     break ; 
  1828.   } 
  1829. zeqsave ( p , l ) 
  1830. halfword p ; 
  1831. quarterword l ; 
  1832. {eqsave_regmem 
  1833.   if ( saveptr > maxsavestack ) 
  1834.   {
  1835.     maxsavestack = saveptr ; 
  1836.     if ( maxsavestack > savesize - 6 ) 
  1837.     overflow ( 399 , savesize ) ; 
  1838.   } 
  1839.   if ( l == 0 ) 
  1840.   savestack [ saveptr ] .hh.b0 = 1 ; 
  1841.   else {
  1842.       
  1843.     savestack [ saveptr ] = eqtb [ p ] ; 
  1844.     incr ( saveptr ) ; 
  1845.     savestack [ saveptr ] .hh.b0 = 0 ; 
  1846.   } 
  1847.   savestack [ saveptr ] .hh.b1 = l ; 
  1848.   savestack [ saveptr ] .hh .v.RH = p ; 
  1849.   incr ( saveptr ) ; 
  1850. zeqdefine ( p , t , e ) 
  1851. halfword p ; 
  1852. quarterword t ; 
  1853. halfword e ; 
  1854. {eqdefine_regmem 
  1855.   if ( eqtb [ p ] .hh.b1 == curlevel ) 
  1856.   eqdestroy ( eqtb [ p ] ) ; 
  1857.   else if ( curlevel > 1 ) 
  1858.   eqsave ( p , eqtb [ p ] .hh.b1 ) ; 
  1859.   eqtb [ p ] .hh.b1 = curlevel ; 
  1860.   eqtb [ p ] .hh.b0 = t ; 
  1861.   eqtb [ p ] .hh .v.RH = e ; 
  1862. zeqworddefine ( p , w ) 
  1863. halfword p ; 
  1864. integer w ; 
  1865. {eqworddefine_regmem 
  1866.   if ( xeqlevel [ p ] != curlevel ) 
  1867.   {
  1868.     eqsave ( p , xeqlevel [ p ] ) ; 
  1869.     xeqlevel [ p ] = curlevel ; 
  1870.   } 
  1871.   eqtb [ p ] .cint = w ; 
  1872. zgeqdefine ( p , t , e ) 
  1873. halfword p ; 
  1874. quarterword t ; 
  1875. halfword e ; 
  1876. {geqdefine_regmem 
  1877.   eqdestroy ( eqtb [ p ] ) ; 
  1878.   eqtb [ p ] .hh.b1 = 1 ; 
  1879.   eqtb [ p ] .hh.b0 = t ; 
  1880.   eqtb [ p ] .hh .v.RH = e ; 
  1881. zgeqworddefine ( p , w ) 
  1882. halfword p ; 
  1883. integer w ; 
  1884. {geqworddefine_regmem 
  1885.   eqtb [ p ] .cint = w ; 
  1886.   xeqlevel [ p ] = 1 ; 
  1887. zsaveforafter ( t ) 
  1888. halfword t ; 
  1889. {saveforafter_regmem 
  1890.   if ( saveptr > maxsavestack ) 
  1891.   {
  1892.     maxsavestack = saveptr ; 
  1893.     if ( maxsavestack > savesize - 6 ) 
  1894.     overflow ( 399 , savesize ) ; 
  1895.   } 
  1896.   savestack [ saveptr ] .hh.b0 = 2 ; 
  1897.   savestack [ saveptr ] .hh.b1 = 0 ; 
  1898.   savestack [ saveptr ] .hh .v.RH = t ; 
  1899.   incr ( saveptr ) ; 
  1900. #ifdef STAT
  1901. zrestoretrace ( p , s ) 
  1902. halfword p ; 
  1903. strnumber s ; 
  1904. {restoretrace_regmem 
  1905.   begindiagnostic () ; 
  1906.   printchar ( 123 ) ; 
  1907.   print ( s ) ; 
  1908.   printchar ( 32 ) ; 
  1909.   showeqtb ( p ) ; 
  1910.   printchar ( 125 ) ; 
  1911.   enddiagnostic ( false ) ; 
  1912. #endif /* STAT */
  1913. unsave () {
  1914.     /* 30 */ unsave_regmem 
  1915.   halfword p  ; 
  1916.   quarterword l  ; 
  1917.   halfword t  ; 
  1918.   if ( curlevel > 1 ) 
  1919.   {
  1920.     decr ( curlevel ) ; 
  1921.     while ( true ) {
  1922.     
  1923.       decr ( saveptr ) ; 
  1924.       if ( savestack [ saveptr ] .hh.b0 == 3 ) 
  1925.       goto lab30 ; 
  1926.       p = savestack [ saveptr ] .hh .v.RH ; 
  1927.       if ( savestack [ saveptr ] .hh.b0 == 2 ) 
  1928.       {
  1929.     t = curtok ; 
  1930.     curtok = p ; 
  1931.     backinput () ; 
  1932.     curtok = t ; 
  1933.       } 
  1934.       else {
  1935.       
  1936.     if ( savestack [ saveptr ] .hh.b0 == 0 ) 
  1937.     {
  1938.       l = savestack [ saveptr ] .hh.b1 ; 
  1939.       decr ( saveptr ) ; 
  1940.     } 
  1941.     else savestack [ saveptr ] = eqtb [ 3525 ] ; 
  1942.     if ( p < 5267 ) 
  1943.     if ( eqtb [ p ] .hh.b1 == 1 ) 
  1944.     {
  1945.       eqdestroy ( savestack [ saveptr ] ) ; 
  1946.     ;
  1947. #ifdef STAT
  1948.       if ( eqtb [ 5304 ] .cint > 0 ) 
  1949.       restoretrace ( p , 402 ) ; 
  1950. #endif /* STAT */
  1951.     } 
  1952.     else {
  1953.         
  1954.       eqdestroy ( eqtb [ p ] ) ; 
  1955.       eqtb [ p ] = savestack [ saveptr ] ; 
  1956.     ;
  1957. #ifdef STAT
  1958.       if ( eqtb [ 5304 ] .cint > 0 ) 
  1959.       restoretrace ( p , 403 ) ; 
  1960. #endif /* STAT */
  1961.     } 
  1962.     else if ( xeqlevel [ p ] != 1 ) 
  1963.     {
  1964.       eqtb [ p ] = savestack [ saveptr ] ; 
  1965.       xeqlevel [ p ] = l ; 
  1966.     ;
  1967. #ifdef STAT
  1968.       if ( eqtb [ 5304 ] .cint > 0 ) 
  1969.       restoretrace ( p , 403 ) ; 
  1970. #endif /* STAT */
  1971.     } 
  1972.     else {
  1973.         
  1974.     ;
  1975. #ifdef STAT
  1976.       if ( eqtb [ 5304 ] .cint > 0 ) 
  1977.       restoretrace ( p , 402 ) ; 
  1978. #endif /* STAT */
  1979.     } 
  1980.       } 
  1981.     } 
  1982.     lab30: curgroup = savestack [ saveptr ] .hh.b1 ; 
  1983.     curboundary = savestack [ saveptr ] .hh .v.RH ; 
  1984.   } 
  1985.   else confusion ( 401 ) ; 
  1986.